
#ifndef __noname__
#define __noname__

#include <wx/string.h>
#include <wx/radiobut.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/sizer.h>
#include <wx/statbox.h>
#include <wx/button.h>
#include <wx/stattext.h>
#include <wx/scrolwin.h>
#include <wx/dialog.h>
#include <wx/textctrl.h>
#ifdef new
#undef new
#endif
#include <vector>
#include <iostream>

using std::vector;
///////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////
/// Class EstimationDialog
///////////////////////////////////////////////////////////////////////////////




class guiCorrespondence : public wxStaticBoxSizer
{
public:

 double GetX1() const
    {
        return x1;
    }
    double GetX2() const
    {
        return x2;
    }
    double GetY1() const
    {
        return y1;
    }
    double GetY2() const
    {
        return y2;
    }

    void SetX1(double x)
    {
        x1=x;
    }
    void SetX2(double x)
    {
        x2=x;
    }
    void SetY1(double y)
    {
        y1=y;
    }
    void SetY2(double y)
    {
        y2=y;
    }


private:
    wxTextCtrl  *m_corr_x1;
    wxTextCtrl  *m_corr_y1;
    wxTextCtrl  *m_corr_x2;
    wxTextCtrl  *m_corr_y2;

    double x1,y1,x2,y2;


public:
bool TransferDataToWindow();
bool TransferDataFromWindow();
void deleteCTRLS();
    guiCorrespondence( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
    ~guiCorrespondence();

};



class EstimationDialog : public wxDialog
{
private:

protected:
    wxRadioButton* m_radioBtn1;
    wxRadioButton* m_radioBtn2;
    wxButton* m_button1;
    wxButton* m_button2;
    wxButton* m_button3;
    wxButton* m_button4;
    wxButton* m_button7;
    wxButton* m_button8;
    wxStaticText* m_staticText1;
    wxScrolledWindow* m_correspondencescrolledWindow;
    wxButton* m_button10;
    wxButton* m_button12;
    wxBoxSizer* m_correspondencesizer;

    void OnOpenMatch( wxCommandEvent& event );
    void OnSaveMatch( wxCommandEvent& event );
    void OnAddMatch( wxCommandEvent& event );
    void OnDeleteMatch( wxCommandEvent& event );
    void OnLoadImages( wxCommandEvent& event );
    void OnShowMotionModel( wxCommandEvent& event );
    void OnProcess( wxCommandEvent& event );
    vector<guiCorrespondence*> corrGuiVector;

public:
    EstimationDialog( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Motion Model Estimation Tool"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 681,650 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
    ~EstimationDialog();
//vector <guiCorrespondence*> gui_corrs_vec;

};



#endif //__noname__
